﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Liquidaciones.Models;

namespace Liquidaciones.Repositories
{
    public class EmpleadoRepository
    {
        LiquidacionesContext db;

        public EmpleadoRepository()
        {
            db = LiquidacionesContext.Instance;
        }

        public void Create(Empleado empleado)
        {
                db.Empleados.Add(empleado);
                db.SaveChanges();           
        }

        public void Save()
        {
                db.SaveChanges();           
        }

        public Empleado Get(Guid id)
        {
            Empleado empleado = db.Empleados.Find(id);
            foreach (Liquidacion liquidacion in empleado.MisLiquidaciones)
            {
                if (liquidacion.Fecha.Year == DateTime.Now.Year && liquidacion.Fecha.Month == DateTime.Now.Month)
                {
                    empleado.Liquidado = true;
                    break;
                }
                else
                    empleado.Liquidado = false;
            }
            return empleado;
        }

        public List<Empleado> GetAll()
        {
            List<Empleado> empleados = db.Empleados.ToList();
            foreach (Empleado empleado in empleados)
            {
                foreach (Liquidacion liquidacion in empleado.MisLiquidaciones)
                {
                    if (liquidacion.Fecha.Year == DateTime.Now.Year && liquidacion.Fecha.Month == DateTime.Now.Month)
                    {
                        empleado.Liquidado = true;
                        break;
                    }
                    else
                        empleado.Liquidado = false;
                }
            }
            return empleados;
        }

        public void Delete(Empleado empleado)
        {
            db.Empleados.Remove(empleado);
            db.SaveChanges();
        }
    }
}